package com.zimmur.solr.service;

import java.util.List;
import java.util.Map;

import org.apache.solr.client.solrj.SolrQuery.SortClause;

import com.zimmur.solr.common.Facet;
import com.zimmur.solr.model.Goods;
import com.zimmur.tools.PageUtil;

public interface ISolrGoodsService {

	/**
	 * 商品搜索
	 * @param type		类型搜索
	 * @param keyword   关键字搜索
	 * @param typeflag  类别搜索
	 * @param value     排序条件
	 * @param pageNo    页码
	 * @return
	 */
	public List<Goods> query(int typeId,String keyword,int typeflag,List<SortClause> value,int pageNo);
	public List<Goods> queryAll(int type,String title,int typeflag);
	public Map<String ,Object> queryWithfacet(int type,String title,int typeflag,List<SortClause> value,int pageNo,Facet facet);
	public int deleteById(String goodsId);
	public int add(Goods goods);
	public int addList(List<Goods> goodses);
	
//	public PageUtil<Goods> queryGoods(List<Integer> typeIds,String keyword,
//			int typeflag,List<SortClause> orderByClause,int pageNo);
	/**
	 * 按商品标签查询商品列表
	* @Title: queryGoodsByTags 
	* @Description: 按商品标签查询商品列表
	* @param  typeId 商品分类，值为null或0不做为筛选条件
	* @param  tags 商品标签，多个以英文逗号分隔
	* @param  typeflag 商品类别 1=衣匠 3=配饰
	* @param  orderByClause 排序条件
	* @param  offPercent 折扣，格式：30(单个数据)，30-50(区间数据)
	* @param  goodSizeCode 商品尺码，格式：L
	* @param  goodColorName 商品颜色，格式：红色
	* @param  price  商品价格：格式：30(单个数据)，30-50(区间数据)
	* @param  pageSize 每页记录数，默认10条
	* @param  pageNo 页码
	* @return PageUtil<Goods>    返回类型 
	 */
	public PageUtil<Goods> queryGoods(List<String> typeIds,String keyword,String tags,int typeflag,List<SortClause> orderByClause,
			String offPercent,String goodSizeCode,String goodColorName,String price,int pageSize,int pageNo);
	/**
	 * 查询首页商品推荐
	* @Title: queryRecommendIndexGoods 	
	* @Description: 查询首页商品推荐,	
	* @param rowsSize 返回最大记录数
	* @param @return    设定文件 	
	* @return List<Goods>    返回类型 
	 */
	public List<Goods> queryRecommendIndexGoods(int rowsSize,List<SortClause> orderByClause);
	/**
	 * 根据商品ID获取商品信息
	* @Title: queryGoodsById 
	* @Description: TODO(这里用一句话描述这个方法的作用) 
	* @param goodsIds
	* @return  
	* @return List<Goods>    返回类型
	 */
	public List<Goods> queryGoodsById(List<String> goodsIds);
}
